The World Wide Web (web) is one of the most popular mediums for obtaining information. The increasing popularity of the web has resulted in significant growth in the number of web users and thus an increase in web traffic. The increased traffic causes an increase in the time required for a user to request and receive a webpage. Other causes for increases in the time required for a user to request and receive a webpage are network congestion, low bandwidth, bandwidth underutilization, and propagation delay.
Web development engineers have created hardware solutions in an effort to decrease the time required to request and receive a webpage. One example of a hardware solution is an upgrade for the web servers and bandwidth capabilities. Another hardware solution is the use of a proxy between the user and the web server. In the proxy solution, the proxy has a cache memory for storing webpages that the user frequently visits. The time required to load a webpage from the proxy is significantly less than the time required to load a webpage from the web server. If the proxy does not have the webpage stored in cache memory, then the proxy passes the webpage request onto the web server, and then forwards the user-requested webpage back to the user.
Web development engineers have also developed software solutions in an effort to decrease the time required to request and receive a webpage. One of the software solutions is the concept of prefetching webpages. Prefetching is the process of obtaining webpages from the web server that the user has not yet requested. The main idea in prefetching is to prefetch those webpages that the user will most likely request. The prefetching is preformed during the downtime in the bandwidth, i.e. when the user is not requesting or receiving any webpages.
Many of the prior art versions of prefetching are inefficient in terms of bandwidth consumed and accurately perfecting webpages that the user actually requests. For example, when using a typical web search engine, a user enters search criteria and the search engine displays the ten most relevant responses to the search. The search engine also displays a “next” tag that leads the user to the next ten most relevant responses, and so forth. In some embodiments, after the search engine displays the first ten results, the web browser prefetches the webpages for the displayed links and stores the prefetched webpages in the user's computer. In other embodiments, when the user enters a search, the web browser prefetches the webpages for the links that will be displayed by clicking the “next” link and stores the prefetched webpages in the user's computer. Other embodiments exist where the user can configure the prefetching mechanism to prefetch only specific webpages.
One of the problems associated with the prior art prefetch mechanisms is that the criteria for selecting the particular webpages to prefetch is not very accurate in terms of selecting webpages that the user actually requests. The prior art prefetch mechanisms are also not very bandwidth efficient because a multitude of webpages that are never requested are transmitted to the user's computer. Another problem associated with the prior art prefetch mechanisms is that they must be configured by the user and the configuration process is time consuming and confusing to inexperienced users. Therefore, a need exists for a more bandwidth efficient prefetching mechanism that more accurately prefetches webpages that the user will likely request and that does not have to be configured by the user.
The prior art has previously addressed the issue of creating improved prefetching mechanisms. For example, U.S. Pat. No. 6,256,712 (the '712 patent) entitled “Scaleable Method for Maintaining and Making Consistent Updates to Caches” discloses a method for caching dynamic webpages. The method in the '712 patent updates webpages based on triggers in the webpages. However, the '712 invention is unable to prefetch webpages that do not contain the triggers. What is needed beyond the '712 patent is a method for prefetching webpages that is able to prefetch webpages that do not contain the triggers.
U.S. Pat. No. 6,560,639 (the '639 patent) entitled “System for Web Content Management Based on Server-Side Application” discloses a method for monitoring user changes to webpages. The method in the '639 patent allows a user to make changes to their personal webpages and monitor the status of their changes. What is needed beyond the '639 patent is a server-side method for monitoring changes made to webpages by people other than the user and to webpages other than the user's webpages.
Consequently, a need still exists for an improved prefetch mechanism that runs on the server side of the web and uses the users' browsing habits to determine the webpages to prefetch. The need extends to a prefetch mechanism that updates changed webpages other than the users' webpages. Finally, a need exists for a prefetch mechanism that update webpages that are altered by programs or people other than the user.